// pages/index/fm/fm.js

Page({

  /**
   * 页面的初始数据
   */
  data: {
      pageNum:1,
      pageSize:15,
      Arr:[],
      playing: false,
      audioContext: null,
      hasMore: true, // 是否还有更多数据可加载
      url:'',
      losthost:'',
      totalPageCount:0,
    isLoading: false,// 节流阀，false表示没有加载数据；true表示正在加载数据
    currentIndex: 0 // 当前播放的音频索引
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const app = getApp();
    this.setData({
        url: app.globalData.URL,
        losthost:app.globalData.losthost
    })
    console.log(this.data.url)
    console.log(this.data.losthost)
    this.fetchAudioList(); // 调用加载音频列表的方法
  },

  /**
   * 加载音频列表的方法
   */
  fetchAudioList() {
    this.setData({
        isLoading:true
      })
       // 加入一个正在加载中的效果
    wx.showLoading({
        title: '正在加载中...',
        icon: 'loading'
    });
    wx.request({
      url: this.data.url + "fm",
      method: 'GET',
      data: {
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      },
      success: (res) => {
        console.log(res);
          // 使用concat方法替代数组展开语法
          this.setData({
            Arr: this.data.Arr.concat(res.data.data.list),
            totalPageCount:res.data.data.pages
          });
        console.log("Arr", this.data.Arr);
      },
      fail: (err) => {
        wx.showToast({
          title: '加载音频列表失败',
          icon: 'none'
        });
        console.log('Failed to fetch audio list from server:', err);
      },
      complete: () => {
        // 关闭正在加载中提示
     wx.hideLoading();
     // 关闭下拉刷新
     wx.stopPullDownRefresh();
     this.setData({
       isLoading:false
     })
     }
    });
  },
  /**
   * 播放音频
   */
  playAudio:function (e) {
      const index = e.currentTarget.dataset.index;
      this.setData({
          currentIndex:index,
          playing:true
      })
      const audioContext = wx.createInnerAudioContext();
      audioContext.src = this.data.losthost+this.data.Arr[index].music
      audioContext.play();
      this.setData({
          audioContext:audioContext
      });
  },
  /**
   * 停止音频
   */
  stopAudio: function () {
    if (this.data.audioContext) {
      this.data.audioContext.stop();
      this.setData({
        playing: false
      });
    }
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
        pageNum: 1,
        Arr: [], // 正确重置 textArr
        totalPageCount:0
    });
    this.fetchAudioList();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 判断如果数据正在加载中，则拦截
    if(this.data.isLoading || this.data.pageNum >= this.data.totalPageCount){
        wx.showToast({
            title: '没有更多数据了...',
            icon: 'none'
          });
        return;
    }
    // 上提，就是让pageNo+1即可
    this.setData({
      pageNo:this.data.pageNum+1
    })
    // 再次查询
    this.fetchAudioList();
  },


  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})